def run(params:list[str]):
    from ApiTools import apiTools,apiBase
    try:
        # 根据问题->生成4种action
        # 每个action生成答案，（如果有定义工具就执行工具）生成结果
        # 如果用户提供了验证工具，调用用户的验证工具，如果没有用户验证工具，调用系统自带验证工具
        # 如果能满足用户的需求，直接返回
        # 如果不能满足用户需求，调用sft反思和打分评价
        # 找出最好的分数和action，返回答案
        grp_collects=apiBase.argv_array(params,1,'grp/json;',';')        
        grp_vcts=apiTools.load_models().get_vects(grp_collects,None)
        
        tol_collects=apiBase.argv_array(params,2,'database/tools;',';')        
        tol_vcts=apiTools.load_models().get_vects(tol_collects,None)
        
        param=apiBase.argv_json(params,3,{"aggregate": [], "curNodeName": "bc"})
        
        grp = apiTools.load_tol()
        graph=grp.load_langgraph(grp_vcts,tol_vcts)
        res=graph.invoke(param)
        return res
    except Exception as e:
        return f"function error:{e}"